home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / util / Date.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  9.8 KB  |  644 lines

  1. package java.util;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;
  7. import java.text.DateFormat;
  8. import sun.util.calendar.BaseCalendar;
  9. import sun.util.calendar.CalendarSystem;
  10. import sun.util.calendar.CalendarUtils;
  11. import sun.util.calendar.ZoneInfo;
  12.  
  13. public class Date implements Serializable, Cloneable, Comparable<Date> {
  14.    private static final BaseCalendar gcal = CalendarSystem.getGregorianCalendar();
  15.    private static BaseCalendar jcal;
  16.    private transient long fastTime;
  17.    private transient BaseCalendar.Date cdate;
  18.    private static int defaultCenturyStart;
  19.    private static final long serialVersionUID = 7523967970034938905L;
  20.    private static final String[] wtb = new String[]{"am", "pm", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday", "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december", "gmt", "ut", "utc", "est", "edt", "cst", "cdt", "mst", "mdt", "pst", "pdt"};
  21.    private static final int[] ttb = new int[]{14, 1, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 10000, 10000, 10000, 10300, 10240, 10360, 10300, 10420, 10360, 10480, 10420};
  22.  
  23.    public Date() {
  24.       this(System.currentTimeMillis());
  25.    }
  26.  
  27.    public Date(long var1) {
  28.       this.fastTime = var1;
  29.    }
  30.  
  31.    /** @deprecated */
  32.    @Deprecated
  33.    public Date(int var1, int var2, int var3) {
  34.       this(var1, var2, var3, 0, 0, 0);
  35.    }
  36.  
  37.    /** @deprecated */
  38.    @Deprecated
  39.    public Date(int var1, int var2, int var3, int var4, int var5) {
  40.       this(var1, var2, var3, var4, var5, 0);
  41.    }
  42.  
  43.    /** @deprecated */
  44.    @Deprecated
  45.    public Date(int var1, int var2, int var3, int var4, int var5, int var6) {
  46.       int var7 = var1 + 1900;
  47.       if (var2 >= 12) {
  48.          var7 += var2 / 12;
  49.          var2 %= 12;
  50.       } else if (var2 < 0) {
  51.          var7 += CalendarUtils.floorDivide(var2, 12);
  52.          var2 = CalendarUtils.mod(var2, 12);
  53.       }
  54.  
  55.       BaseCalendar var8 = getCalendarSystem(var7);
  56.       this.cdate = (BaseCalendar.Date)var8.newCalendarDate(TimeZone.getDefaultRef());
  57.       this.cdate.setNormalizedDate(var7, var2 + 1, var3).setTimeOfDay(var4, var5, var6, 0);
  58.       this.getTimeImpl();
  59.       this.cdate = null;
  60.    }
  61.  
  62.    /** @deprecated */
  63.    @Deprecated
  64.    public Date(String var1) {
  65.       this(parse(var1));
  66.    }
  67.  
  68.    public Object clone() {
  69.       Date var1 = null;
  70.  
  71.       try {
  72.          var1 = (Date)super.clone();
  73.          if (this.cdate != null) {
  74.             var1.cdate = (BaseCalendar.Date)this.cdate.clone();
  75.          }
  76.       } catch (CloneNotSupportedException var3) {
  77.       }
  78.  
  79.       return var1;
  80.    }
  81.  
  82.    /** @deprecated */
  83.    @Deprecated
  84.    public static long UTC(int var0, int var1, int var2, int var3, int var4, int var5) {
  85.       int var6 = var0 + 1900;
  86.       if (var1 >= 12) {
  87.          var6 += var1 / 12;
  88.          var1 %= 12;
  89.       } else if (var1 < 0) {
  90.          var6 += CalendarUtils.floorDivide(var1, 12);
  91.          var1 = CalendarUtils.mod(var1, 12);
  92.       }
  93.  
  94.       int var7 = var1 + 1;
  95.       BaseCalendar var8 = getCalendarSystem(var6);
  96.       BaseCalendar.Date var9 = (BaseCalendar.Date)var8.newCalendarDate((TimeZone)null);
  97.       var9.setNormalizedDate(var6, var7, var2).setTimeOfDay(var3, var4, var5, 0);
  98.       var9 = normalize(var9);
  99.       var8 = getCalendarSystem(var9);
  100.       return var8.getTime(var9);
  101.    }
  102.  
  103.    /** @deprecated */
  104.    @Deprecated
  105.    public static long parse(String var0) {
  106.       int var1 = Integer.MIN_VALUE;
  107.       byte var2 = -1;
  108.       byte var3 = -1;
  109.       int var4 = -1;
  110.       byte var5 = -1;
  111.       byte var6 = -1;
  112.       boolean var7 = true;
  113.       char var8 = '\uffff';
  114.       int var9 = 0;
  115.       int var10 = -1;
  116.       boolean var11 = true;
  117.       int var12 = -1;
  118.       char var13 = 0;
  119.       if (var0 != null) {
  120.          int var14 = var0.length();
  121.  
  122.          while(true) {
  123.             if (var9 >= var14) {
  124.                if (var1 != Integer.MIN_VALUE && var2 >= 0 && var3 >= 0) {
  125.                   if (var1 < 100) {
  126.                      synchronized(Date.class) {
  127.                         if (defaultCenturyStart == 0) {
  128.                            defaultCenturyStart = gcal.getCalendarDate().getYear() - 80;
  129.                         }
  130.                      }
  131.  
  132.                      var1 += defaultCenturyStart / 100 * 100;
  133.                      if (var1 < defaultCenturyStart) {
  134.                         var1 += 100;
  135.                      }
  136.                   }
  137.  
  138.                   if (var6 < 0) {
  139.                      var6 = 0;
  140.                   }
  141.  
  142.                   if (var5 < 0) {
  143.                      var5 = 0;
  144.                   }
  145.  
  146.                   if (var4 < 0) {
  147.                      var4 = 0;
  148.                   }
  149.  
  150.                   BaseCalendar var27 = getCalendarSystem(var1);
  151.                   if (var12 == -1) {
  152.                      BaseCalendar.Date var29 = (BaseCalendar.Date)var27.newCalendarDate(TimeZone.getDefaultRef());
  153.                      var29.setDate(var1, var2 + 1, var3);
  154.                      var29.setTimeOfDay(var4, var5, var6, 0);
  155.                      return var27.getTime(var29);
  156.                   }
  157.  
  158.                   BaseCalendar.Date var28 = (BaseCalendar.Date)var27.newCalendarDate((TimeZone)null);
  159.                   var28.setDate(var1, var2 + 1, var3);
  160.                   var28.setTimeOfDay(var4, var5, var6, 0);
  161.                   return var27.getTime(var28) + (long)(var12 * '\uea60');
  162.                }
  163.                break;
  164.             }
  165.  
  166.             var8 = var0.charAt(var9);
  167.             ++var9;
  168.             if (var8 > ' ' && var8 != ',') {
  169.                if (var8 == '(') {
  170.                   int var25 = 1;
  171.  
  172.                   while(var9 < var14) {
  173.                      var8 = var0.charAt(var9);
  174.                      ++var9;
  175.                      if (var8 == '(') {
  176.                         ++var25;
  177.                      } else if (var8 == ')') {
  178.                         --var25;
  179.                         if (var25 <= 0) {
  180.                            break;
  181.                         }
  182.                      }
  183.                   }
  184.                } else if ('0' <= var8 && var8 <= '9') {
  185.                   for(var10 = var8 - 48; var9 < var14 && '0' <= (var8 = var0.charAt(var9)) && var8 <= '9'; ++var9) {
  186.                      var10 = var10 * 10 + var8 - 48;
  187.                   }
  188.  
  189.                   if (var13 != '+' && (var13 != '-' || var1 == Integer.MIN_VALUE)) {
  190.                      if (var10 >= 70) {
  191.                         if (var1 != Integer.MIN_VALUE || var8 > ' ' && var8 != ',' && var8 != '/' && var9 < var14) {
  192.                            break;
  193.                         }
  194.  
  195.                         var1 = var10;
  196.                      } else if (var8 == ':') {
  197.                         if (var4 < 0) {
  198.                            var4 = (byte)var10;
  199.                         } else {
  200.                            if (var5 >= 0) {
  201.                               break;
  202.                            }
  203.  
  204.                            var5 = (byte)var10;
  205.                         }
  206.                      } else if (var8 == '/') {
  207.                         if (var2 < 0) {
  208.                            var2 = (byte)(var10 - 1);
  209.                         } else {
  210.                            if (var3 >= 0) {
  211.                               break;
  212.                            }
  213.  
  214.                            var3 = (byte)var10;
  215.                         }
  216.                      } else {
  217.                         if (var9 < var14 && var8 != ',' && var8 > ' ' && var8 != '-') {
  218.                            break;
  219.                         }
  220.  
  221.                         if (var4 >= 0 && var5 < 0) {
  222.                            var5 = (byte)var10;
  223.                         } else if (var5 >= 0 && var6 < 0) {
  224.                            var6 = (byte)var10;
  225.                         } else if (var3 < 0) {
  226.                            var3 = (byte)var10;
  227.                         } else {
  228.                            if (var1 != Integer.MIN_VALUE || var2 < 0 || var3 < 0) {
  229.                               break;
  230.                            }
  231.  
  232.                            var1 = var10;
  233.                         }
  234.                      }
  235.                   } else {
  236.                      if (var10 < 24) {
  237.                         var10 *= 60;
  238.                      } else {
  239.                         var10 = var10 % 100 + var10 / 100 * 60;
  240.                      }
  241.  
  242.                      if (var13 == '+') {
  243.                         var10 = -var10;
  244.                      }
  245.  
  246.                      if (var12 != 0 && var12 != -1) {
  247.                         break;
  248.                      }
  249.  
  250.                      var12 = var10;
  251.                   }
  252.  
  253.                   var13 = 0;
  254.                } else if (var8 != '/' && var8 != ':' && var8 != '+' && var8 != '-') {
  255.                   int var15;
  256.                   for(var15 = var9 - 1; var9 < var14; ++var9) {
  257.                      var8 = var0.charAt(var9);
  258.                      if (('A' > var8 || var8 > 'Z') && ('a' > var8 || var8 > 'z')) {
  259.                         break;
  260.                      }
  261.                   }
  262.  
  263.                   if (var9 <= var15 + 1) {
  264.                      break;
  265.                   }
  266.  
  267.                   int var16 = wtb.length;
  268.  
  269.                   while(true) {
  270.                      --var16;
  271.                      if (var16 < 0) {
  272.                         break;
  273.                      }
  274.  
  275.                      if (wtb[var16].regionMatches(true, 0, var0, var15, var9 - var15)) {
  276.                         int var17 = ttb[var16];
  277.                         if (var17 != 0) {
  278.                            if (var17 == 1) {
  279.                               if (var4 > 12 || var4 < 1) {
  280.                                  throw new IllegalArgumentException();
  281.                               }
  282.  
  283.                               if (var4 < 12) {
  284.                                  var4 += 12;
  285.                               }
  286.                            } else if (var17 == 14) {
  287.                               if (var4 > 12 || var4 < 1) {
  288.                                  throw new IllegalArgumentException();
  289.                               }
  290.  
  291.                               if (var4 == 12) {
  292.                                  var4 = 0;
  293.                               }
  294.                            } else if (var17 <= 13) {
  295.                               if (var2 >= 0) {
  296.                                  throw new IllegalArgumentException();
  297.                               }
  298.  
  299.                               var2 = (byte)(var17 - 2);
  300.                            } else {
  301.                               var12 = var17 - 10000;
  302.                            }
  303.                         }
  304.                         break;
  305.                      }
  306.                   }
  307.  
  308.                   if (var16 < 0) {
  309.                      break;
  310.                   }
  311.  
  312.                   var13 = 0;
  313.                } else {
  314.                   var13 = var8;
  315.                }
  316.             }
  317.          }
  318.       }
  319.  
  320.       throw new IllegalArgumentException();
  321.    }
  322.  
  323.    /** @deprecated */
  324.    @Deprecated
  325.    public int getYear() {
  326.       return this.normalize().getYear() - 1900;
  327.    }
  328.  
  329.    /** @deprecated */
  330.    @Deprecated
  331.    public void setYear(int var1) {
  332.       this.getCalendarDate().setNormalizedYear(var1 + 1900);
  333.    }
  334.  
  335.    /** @deprecated */
  336.    @Deprecated
  337.    public int getMonth() {
  338.       return this.normalize().getMonth() - 1;
  339.    }
  340.  
  341.    /** @deprecated */
  342.    @Deprecated
  343.    public void setMonth(int var1) {
  344.       int var2 = 0;
  345.       if (var1 >= 12) {
  346.          var2 = var1 / 12;
  347.          var1 %= 12;
  348.       } else if (var1 < 0) {
  349.          var2 = CalendarUtils.floorDivide(var1, 12);
  350.          var1 = CalendarUtils.mod(var1, 12);
  351.       }
  352.  
  353.       BaseCalendar.Date var3 = this.getCalendarDate();
  354.       if (var2 != 0) {
  355.          var3.setNormalizedYear(var3.getNormalizedYear() + var2);
  356.       }
  357.  
  358.       var3.setMonth(var1 + 1);
  359.    }
  360.  
  361.    /** @deprecated */
  362.    @Deprecated
  363.    public int getDate() {
  364.       return this.normalize().getDayOfMonth();
  365.    }
  366.  
  367.    /** @deprecated */
  368.    @Deprecated
  369.    public void setDate(int var1) {
  370.       this.getCalendarDate().setDayOfMonth(var1);
  371.    }
  372.  
  373.    /** @deprecated */
  374.    @Deprecated
  375.    public int getDay() {
  376.       int var10000 = this.normalize().getDayOfWeek();
  377.       BaseCalendar var10001 = gcal;
  378.       return var10000 - 1;
  379.    }
  380.  
  381.    /** @deprecated */
  382.    @Deprecated
  383.    public int getHours() {
  384.       return this.normalize().getHours();
  385.    }
  386.  
  387.    /** @deprecated */
  388.    @Deprecated
  389.    public void setHours(int var1) {
  390.       this.getCalendarDate().setHours(var1);
  391.    }
  392.  
  393.    /** @deprecated */
  394.    @Deprecated
  395.    public int getMinutes() {
  396.       return this.normalize().getMinutes();
  397.    }
  398.  
  399.    /** @deprecated */
  400.    @Deprecated
  401.    public void setMinutes(int var1) {
  402.       this.getCalendarDate().setMinutes(var1);
  403.    }
  404.  
  405.    /** @deprecated */
  406.    @Deprecated
  407.    public int getSeconds() {
  408.       return this.normalize().getSeconds();
  409.    }
  410.  
  411.    /** @deprecated */
  412.    @Deprecated
  413.    public void setSeconds(int var1) {
  414.       this.getCalendarDate().setSeconds(var1);
  415.    }
  416.  
  417.    public long getTime() {
  418.       return this.getTimeImpl();
  419.    }
  420.  
  421.    private final long getTimeImpl() {
  422.       if (this.cdate != null) {
  423.          this.normalize();
  424.          BaseCalendar var1 = getCalendarSystem(this.cdate);
  425.          this.fastTime = var1.getTime(this.cdate);
  426.       }
  427.  
  428.       return this.fastTime;
  429.    }
  430.  
  431.    public void setTime(long var1) {
  432.       this.fastTime = var1;
  433.       this.cdate = null;
  434.    }
  435.  
  436.    public boolean before(Date var1) {
  437.       return getMillisOf(this) < getMillisOf(var1);
  438.    }
  439.  
  440.    public boolean after(Date var1) {
  441.       return getMillisOf(this) > getMillisOf(var1);
  442.    }
  443.  
  444.    public boolean equals(Object var1) {
  445.       return var1 instanceof Date && this.getTime() == ((Date)var1).getTime();
  446.    }
  447.  
  448.    static final long getMillisOf(Date var0) {
  449.       if (var0.cdate == null) {
  450.          return var0.fastTime;
  451.       } else {
  452.          BaseCalendar.Date var1 = (BaseCalendar.Date)var0.cdate.clone();
  453.          return gcal.getTime(var1);
  454.       }
  455.    }
  456.  
  457.    public int compareTo(Date var1) {
  458.       long var2 = getMillisOf(this);
  459.       long var4 = getMillisOf(var1);
  460.       return var2 < var4 ? -1 : (var2 == var4 ? 0 : 1);
  461.    }
  462.  
  463.    public int hashCode() {
  464.       long var1 = this.getTime();
  465.       return (int)var1 ^ (int)(var1 >> 32);
  466.    }
  467.  
  468.    public String toString() {
  469.       BaseCalendar.Date var1 = this.normalize();
  470.       StringBuilder var2 = new StringBuilder(28);
  471.       int var3 = var1.getDayOfWeek();
  472.       BaseCalendar var10001 = gcal;
  473.       if (var3 == 1) {
  474.          var3 = 8;
  475.       }
  476.  
  477.       convertToAbbr(var2, wtb[var3]).append(' ');
  478.       convertToAbbr(var2, wtb[var1.getMonth() - 1 + 2 + 7]).append(' ');
  479.       CalendarUtils.sprintf0d(var2, var1.getDayOfMonth(), 2).append(' ');
  480.       CalendarUtils.sprintf0d(var2, var1.getHours(), 2).append(':');
  481.       CalendarUtils.sprintf0d(var2, var1.getMinutes(), 2).append(':');
  482.       CalendarUtils.sprintf0d(var2, var1.getSeconds(), 2).append(' ');
  483.       TimeZone var4 = var1.getZone();
  484.       if (var4 != null) {
  485.          var2.append(var4.getDisplayName(var1.isDaylightTime(), 0, Locale.US));
  486.       } else {
  487.          var2.append("GMT");
  488.       }
  489.  
  490.       var2.append(' ').append(var1.getYear());
  491.       return var2.toString();
  492.    }
  493.  
  494.    private static final StringBuilder convertToAbbr(StringBuilder var0, String var1) {
  495.       var0.append(Character.toUpperCase(var1.charAt(0)));
  496.       var0.append(var1.charAt(1)).append(var1.charAt(2));
  497.       return var0;
  498.    }
  499.  
  500.    /** @deprecated */
  501.    @Deprecated
  502.    public String toLocaleString() {
  503.       DateFormat var1 = DateFormat.getDateTimeInstance();
  504.       return var1.format(this);
  505.    }
  506.  
  507.    /** @deprecated */
  508.    @Deprecated
  509.    public String toGMTString() {
  510.       long var1 = this.getTime();
  511.       BaseCalendar var3 = getCalendarSystem(var1);
  512.       BaseCalendar.Date var4 = (BaseCalendar.Date)var3.getCalendarDate(this.getTime(), (TimeZone)null);
  513.       StringBuilder var5 = new StringBuilder(32);
  514.       CalendarUtils.sprintf0d(var5, var4.getDayOfMonth(), 1).append(' ');
  515.       convertToAbbr(var5, wtb[var4.getMonth() - 1 + 2 + 7]).append(' ');
  516.       var5.append(var4.getYear()).append(' ');
  517.       CalendarUtils.sprintf0d(var5, var4.getHours(), 2).append(':');
  518.       CalendarUtils.sprintf0d(var5, var4.getMinutes(), 2).append(':');
  519.       CalendarUtils.sprintf0d(var5, var4.getSeconds(), 2);
  520.       var5.append(" GMT");
  521.       return var5.toString();
  522.    }
  523.  
  524.    /** @deprecated */
  525.    @Deprecated
  526.    public int getTimezoneOffset() {
  527.       int var1;
  528.       if (this.cdate == null) {
  529.          TimeZone var2 = TimeZone.getDefaultRef();
  530.          if (var2 instanceof ZoneInfo) {
  531.             var1 = ((ZoneInfo)var2).getOffsets(this.fastTime, (int[])null);
  532.          } else {
  533.             var1 = var2.getOffset(this.fastTime);
  534.          }
  535.       } else {
  536.          this.normalize();
  537.          var1 = this.cdate.getZoneOffset();
  538.       }
  539.  
  540.       return -var1 / '\uea60';
  541.    }
  542.  
  543.    private final BaseCalendar.Date getCalendarDate() {
  544.       if (this.cdate == null) {
  545.          BaseCalendar var1 = getCalendarSystem(this.fastTime);
  546.          this.cdate = (BaseCalendar.Date)var1.getCalendarDate(this.fastTime, TimeZone.getDefaultRef());
  547.       }
  548.  
  549.       return this.cdate;
  550.    }
  551.  
  552.    private final BaseCalendar.Date normalize() {
  553.       if (this.cdate == null) {
  554.          BaseCalendar var1 = getCalendarSystem(this.fastTime);
  555.          this.cdate = (BaseCalendar.Date)var1.getCalendarDate(this.fastTime, TimeZone.getDefaultRef());
  556.       } else {
  557.          TimeZone var5 = TimeZone.getDefaultRef();
  558.          if (var5 != this.cdate.getZone()) {
  559.             BaseCalendar var2 = getCalendarSystem(this.cdate);
  560.             long var3 = var2.getTime(this.cdate);
  561.             this.cdate.setZone(var5);
  562.             var2.getCalendarDate(var3, this.cdate);
  563.          }
  564.  
  565.          this.cdate = normalize(this.cdate);
  566.       }
  567.  
  568.       return this.cdate;
  569.    }
  570.  
  571.    private static final BaseCalendar.Date normalize(BaseCalendar.Date var0) {
  572.       int var1 = var0.getNormalizedYear();
  573.       int var2 = var0.getMonth();
  574.       int var3 = var0.getDayOfMonth();
  575.       int var4 = var0.getHours();
  576.       int var5 = var0.getMinutes();
  577.       int var6 = var0.getSeconds();
  578.       int var7 = var0.getMillis();
  579.       TimeZone var8 = var0.getZone();
  580.       if (var1 != 1582 && var1 <= 280000000 && var1 >= -280000000) {
  581.          BaseCalendar var14 = getCalendarSystem(var1);
  582.          if (var14 != getCalendarSystem(var0)) {
  583.             var0 = (BaseCalendar.Date)var14.newCalendarDate(var8);
  584.             var0.setNormalizedDate(var1, var2, var3).setTimeOfDay(var4, var5, var6, var7);
  585.          }
  586.  
  587.          long var15 = var14.getTime(var0);
  588.          BaseCalendar var16 = getCalendarSystem(var15);
  589.          if (var16 != var14) {
  590.             var0 = (BaseCalendar.Date)var16.newCalendarDate(var0.getZone());
  591.             var0.setNormalizedDate(var1, var2, var3).setTimeOfDay(var4, var5, var6, var7);
  592.             var16.getTime(var0);
  593.          }
  594.  
  595.          return var0;
  596.       } else {
  597.          if (var8 == null) {
  598.             var8 = TimeZone.getTimeZone("GMT");
  599.          }
  600.  
  601.          GregorianCalendar var9 = new GregorianCalendar(var8);
  602.          var9.clear();
  603.          var9.set(14, var7);
  604.          var9.set(var1, var2 - 1, var3, var4, var5, var6);
  605.          long var10 = var9.getTimeInMillis();
  606.          BaseCalendar var12 = getCalendarSystem(var10);
  607.          var0 = (BaseCalendar.Date)var12.getCalendarDate(var10, var8);
  608.          return var0;
  609.       }
  610.    }
  611.  
  612.    private static final BaseCalendar getCalendarSystem(int var0) {
  613.       return var0 >= 1582 ? gcal : getJulianCalendar();
  614.    }
  615.  
  616.    private static final BaseCalendar getCalendarSystem(long var0) {
  617.       return var0 < 0L && var0 < -12219292800000L - (long)TimeZone.getDefaultRef().getOffset(var0) ? getJulianCalendar() : gcal;
  618.    }
  619.  
  620.    private static final BaseCalendar getCalendarSystem(BaseCalendar.Date var0) {
  621.       if (jcal == null) {
  622.          return gcal;
  623.       } else {
  624.          return var0.getEra() != null ? jcal : gcal;
  625.       }
  626.    }
  627.  
  628.    private static final synchronized BaseCalendar getJulianCalendar() {
  629.       if (jcal == null) {
  630.          jcal = (BaseCalendar)CalendarSystem.forName("julian");
  631.       }
  632.  
  633.       return jcal;
  634.    }
  635.  
  636.    private void writeObject(ObjectOutputStream var1) throws IOException {
  637.       var1.writeLong(this.getTimeImpl());
  638.    }
  639.  
  640.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  641.       this.fastTime = var1.readLong();
  642.    }
  643. }
  644.